package cn.com.shopec.erp.stock.service;

import java.util.List;

import cn.com.shopec.erp.common.page.PageFinder;
import cn.com.shopec.erp.common.page.PageQuery;
import cn.com.shopec.erp.stock.entity.ProductBarCode;
import cn.com.shopec.erp.stock.vo.ProductBarCodeVo;

public interface IProductBarCodeService {

	/**
	 * 分页查询
	 * @param productBarCode
	 * @param pageQuery
	 * @return
	 */
	PageFinder<ProductBarCodeVo> queryProductBarCodeList(ProductBarCodeVo productBarCode, PageQuery pageQuery);

	/**
	 *
	 * @param productBarCodes
	 * @throws Exception
	 */
	void addProductBarCode(List<ProductBarCode> productBarCodes) throws Exception;

	/**
	 * 增加条形码
	 * @param productBarCode
	 * @return 
	 * @throws Exception
	 */
	boolean addProductBarCode(ProductBarCode productBarCode) throws Exception;

	/**
	 * 得到单个产品条形码
	 * @param codeNo
	 * @return 
	 * @throws Exception
	 */
	boolean StockOutProductBarCode(String codeNo) throws Exception;
	
	/**
	 * 删除条形码
	 *
	 * @param id
	 * @return
	 * @throws Exception
	 */
	void deleteProductBarCode(String stockInProductId) throws Exception;

	/**
	 * 导入条形码
	 * @param stockProductId 
	 * @param productBarCode
	 * @param excelData
	 */
	void importProductBarCodes(ProductBarCode productBarCode, List<Object> excelData) throws Exception;

	/**
	 * 给导入条形码分类（未出库，出库，不存在）
	 * @param productBarCode
	 * @param excelData
	 * @return
	 */
/*	Map<String,Object>  checkBarCodeForStockOut(ProductBarCode productBarCode, List<Object> excelData);
*/
	ProductBarCodeVo  checkBarCodeForStockOut(ProductBarCode productBarCode, List<Object> excelData);

	
	/**
	 * 移除出库条码标识
	 * @param stockOutProductId
	 */
	void cancelBarCodeStateStockOut(String stockOutProductId);

	/**
	 * 订退货检查订单商品是否存在
	 * @param productBarCode
	 * @param excelData
	 */
	List<ProductBarCode> checkBarCodeForPurReturn(ProductBarCode productBarCode, List<Object> excelData);

}
